package com.yyq.studyList;

import com.yyq.javastudy.Persion;
import org.junit.Test;

import java.util.*;

/**
 * @author yyq
 * @create 2021-08-04 16:57
 */
public class CollectionTest {

    @Test
    public void test(){
        //
        Collection coll=new ArrayList();

        //add(Obeject e) :将元素添加到集合roll
        //添加类时，重写类的equals方法
        coll.add(new Persion(22,"YQQ"));
        coll.add("aa");
        coll.add("bb");
        coll.add(123);
        coll.add(new Date());
        coll.add(new String("Tom"));


        //size()：获取元素长度
        System.out.println(coll.size());


        //addAll() 将集合coll_1中的元素添加到coll
        Collection coll_1=new ArrayList();

        coll.addAll(coll_1);
        System.out.println(coll);


        //contains(Object e):查看是否包含 e
        //调用时 会调用obj对象的equals方法
        System.out.println("Tom");
        System.out.println(coll.contains(new String("Tom")));
        System.out.println("YYQ");
        //调用Persion中的equals方法来比较coll里面有没有
        System.out.println(coll.contains(new Persion(22, "YQQ")));

        //containsAll(Collectin coll)判断形参coll1中的所有元素是否都存在于当前集合中
        Collection coll_2 = Arrays.asList(123,456);
        System.out.println("containsAll:"+coll.containsAll(coll_2));

        //remove(Object obj：移除数据
        // 仍要重写equals方法 同样调用该对象的equals()方法
        System.out.println("remove:"+coll.remove(new Persion(22, "YQQ")));

        //removeAll(Collection coll) :移除coll中的所有元素(交集)，去除共有元素
        coll.removeAll(coll_2);
        System.out.println("removeAll"+coll);

        //retainAll(Collection coll)获取当前集合和coll的交集，结果返回为当前集合
        coll.retainAll(coll_2);

        //equals(Object  obj):要想返回ture 当前对象和形参对象集合的元素都想同
        // ArrayList有序的 顺序不一样也是false
        coll.equals(coll_1);

        //hashcode():返回当前对象的hash值
        System.out.println(coll.hashCode());

        //集合->数组 toArray()
        Object[] objects = coll.toArray();
        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);
        }
        //扩展 数组到集合 Arrays.asList Arrays类的静态方法
        List<String> list = Arrays.asList(new String[]{"AAA", "BBB", "CCC"});
        System.out.println(list);

        //iterator():返回iterator接口的实例，用于



        //clear()：清空集合
        coll.clear();

        //isEmpty():查看集合是否为空
        System.out.println(coll.isEmpty());


    }
}
